<!--
 * @Descripttion: 
 * @Version: 
 * @Author: gaohj
 * @Date: 2022-12-29 10:26:00
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-12-29 10:40:30
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 封装一个函数 求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
        // 1. 写一个函数求指定数字的阶乘  
        function jiecheng(num){
            // 5的阶乘  1*2*3*4*5
            // 把 1到5构建出来
            // 累乘
            if(num==1) return 1;
            var res = 1; // 准备一个变量 用来存放最后的结果 
            // 阶乘至少是1 所以先把1放进去;
            for(var i=num;i>1;i--){
                res *= i;
            }
            return res;
        }

        // 2.写一个函数 求和 用到上一个函数的结果
        function sum_jiecheng(num){
            // 10 
            // 1!+2!+..+10!

            //1.准备一个容器存放最终的和
           //2. 构建1~10
           //3. 调用上面的函数 第一次循环得到1的阶乘第二次得到2的阶乘
           //4.放到容器进行累加 
           if(num == 1) return 1;
           var sum = 0; // 准备一个容器存放最终的结果

           for(var i=1;i<=num;i++){
                sum += jiecheng(i);  // 把i当做实参传给jiecheng
           }

           return sum;

        }

        console.log(sum_jiecheng(3));

    </script>
</body>
</html>